#ifndef BLOQUEDATOSHASH_H
#define BLOQUEDATOSHASH_H

#include <list>
#include "common/Resultados.h"
#include "BloqArch/IBloque.h"
#include "BloqArch/IRegistro.h"


class BloqueDatosHash : public IBloque {
	private:
		int _tamDispersion;
		std::list<IRegistro*> _lRegistros;

		// Señala cual es el estado de ocupación del bloque
		Resultado getEstado() const;

	public:
		BloqueDatosHash() : _tamDispersion(1){}
		~BloqueDatosHash();

		// IBloque
		unsigned int serialize(char* &arrBytes);
		void deSerialize(char* arrBytes);

		int getTamDispersion() const;
		int duplicarTamDispersion();

		Resultado insertarRegistro(IRegistro* reg);
		Resultado eliminarRegistroPorID(const IRegistro& regID);
		IRegistro& getRegistroPorID(const IRegistro& regID) const;
};

#endif
